const { validationResult } = require('express-validator')
// 该函数的参数是validation的匹配规则数组
module.exports = validator => {
    // 该函数返回一个中间件
    return async (req,res,next) => {
        // express-validator要求的中间件格式
        //  循环所有的validator 对每个数据进行验证(run方法)
        await Promise.all(validator.map(validate => validate.run(req)))
        const errors = validationResult(req)
        if (!errors.isEmpty()){ // 如果错误信息有值
            // 数据输入错误代码401 同时将错误数据以数组形式返回
            return res.status(401).json({error:errors.array()})
        }
        // 如果没有错误 直接执行next 执行后面的中间件
        next()
    }
}